package les.portal.testes.to;

import junit.framework.TestCase;
import les.portal.excecoes.EmailInvalidoException;
import les.portal.excecoes.EmailNuloException;
import les.portal.excecoes.NomeNuloException;
import les.portal.excecoes.PortalException;
import les.portal.negocio.to.DesenvolvedorTO;
import les.portal.negocio.to.EstadoEmDesenvolvimentoTO;
import les.portal.negocio.to.ProjetoTO;

/**
 * 
 * Teste para a classe DesenvolvedorTO.
 * @author Anne Caroline
 * @author Bruno Coitinho
 * @author Gustavo de Farias
 * @author Maria de Lourdes
 *
 * 
 */
public class DesenvolvedorTOTest extends TestCase {

	/*
	 * Test method for 'les.portal.negocio.to.DesenvolvedorTO.setEmail(String)'
	 */
	public void testSetEmail() throws EmailNuloException, EmailInvalidoException {
		
		DesenvolvedorTO to1 = new DesenvolvedorTO();
		
		try {
			to1.setEmail(null);
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("      ");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("     @     ");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abc@");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abc@   ");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("@abc");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("   @abc");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("@");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("ab c@cde");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abc@cde e");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abc @cddc");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abc@ asas");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("abcde@cder@frf");
			fail();
		} catch (Exception e) {}
		try {
			to1.setEmail("@@@");
			fail();
		} catch (Exception e) {}
		
		to1.setEmail("a@b");
		assertEquals("a@b", to1.getEmail());
		
		to1.setEmail("   a@b");
		assertEquals("a@b", to1.getEmail());
		
		to1.setEmail("a@b   ");
		assertEquals("a@b", to1.getEmail());
		
		to1.setEmail("  a@b  ");
		assertEquals("a@b", to1.getEmail());
		
		to1.setEmail("abcdeded@asdasdasd");
		assertEquals("abcdeded@asdasdasd", to1.getEmail());
		
		to1.setEmail("   asdasdasd@adsasda   ");
		assertEquals("asdasdasd@adsasda", to1.getEmail());
	}
	
	public void testNull() {
		DesenvolvedorTO to1 = new DesenvolvedorTO();
		
		try {
			to1.setId(null);
			fail();
		} catch (Exception e) {}
		try {
			to1.setNome(null);
			fail();
		} catch (Exception e) {}

		try {
			to1.setEmail(null);
			fail();
		} catch (Exception e) {}
		
		try {
			to1.setNome("      ");
			fail();
		} catch (Exception e) {}

		try {
			to1.setEmail("");
			fail();
		} catch (Exception e) {}
	}

	/*
	 * Test method for 'les.portal.negocio.to.DesenvolvedorTO.setNome(String)'
	 */
	public void testSetNome() throws NomeNuloException {
		DesenvolvedorTO to1 = new DesenvolvedorTO();
		
		to1.setNome("   caju");
		assertEquals("caju", to1.getNome());
		
		to1.setNome("    cafu    ");
		assertEquals("cafu", to1.getNome());
		
		to1.setNome("cabore");
		assertEquals("cabore", to1.getNome());
	}
	
	/*
	 * Test method for 'les.portal.negocio.to.DesenvolvedorTO.seProjeto()'
	 */
	public void testSetProjeto() throws PortalException{
		
		DesenvolvedorTO to1 = new DesenvolvedorTO();
		
		to1.setProjeto(null);
		assertNull(to1.getProjeto());
		
		ProjetoTO projeto = new ProjetoTO();
		projeto.setId(new Integer(1));		
		projeto.setTitulo("Portal");
		projeto.putEstadoDeProjeto(new EstadoEmDesenvolvimentoTO());
		
		to1.setProjeto(projeto);
		assertNotNull(to1.getProjeto());
		assertEquals("Portal", to1.getProjeto().getTitulo());
	}
}